using System.ComponentModel.DataAnnotations;

namespace S.M.SmartMedical.Domain.Entities
{
    /// <summary>
    /// 医院实体类
    /// 用于存储医院基本信息，包括医院名称、等级、类型、地址、联系方式等
    /// </summary>
    public class Hospital : BaseEntity
    {
        /// <summary>
        /// 医院名称
        /// </summary>
        [Required]
        [MaxLength(100)]
        public string Name { get; set; } = string.Empty;

        /// <summary>
        /// 医院图片URL
        /// </summary>
        [MaxLength(500)]
        public string ImageUrl { get; set; } = string.Empty;

        /// <summary>
        /// 医院等级（三甲、二甲、一甲、其他）
        /// </summary>
        [Required]
        [MaxLength(20)]
        public string Level { get; set; } = string.Empty;

        /// <summary>
        /// 医院类型（综合医院、专科医院、中医医院、其他）
        /// </summary>
        [Required]
        [MaxLength(20)]
        public string Type { get; set; } = string.Empty;

        /// <summary>
        /// 医院地址
        /// </summary>
        [Required]
        [MaxLength(200)]
        public string Address { get; set; } = string.Empty;

        /// <summary>
        /// 联系电话
        /// </summary>
        [Required]
        [MaxLength(50)]
        public string Phone { get; set; } = string.Empty;

        /// <summary>
        /// 医院描述
        /// </summary>
        [MaxLength(1000)]
        public string Description { get; set; } = string.Empty;

        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnabled { get; set; } = true;

        /// <summary>
        /// 上传人
        /// </summary>
        [MaxLength(50)]
        public string Uploader { get; set; } = string.Empty;

        /// <summary>
        /// 上传时间
        /// </summary>
        public DateTime UploadTime { get; set; } = DateTime.Now;
    }
}